Skip to content

Latest commit

 

History

History
448 lines (374 loc) · 14.9 KB

API ECOS для внешних систем.rst

File metadata and controls

448 lines (374 loc) · 14.9 KB

Примеры использования Records API для внешних систем

API-интерфейс позволяет работать с данными системы ECOS в привычном интерфейсе вашей информационной системы.

С помощью Records API вы можете выполнять любые действия с данными, которые хранятся в любом из микросервисов ECOS. Подробнее про :ref:`Records API <Records_API>`

Примеры использования API:

  • получение и изменение информации о маршрутах;
  • управление набором и составом групп пользователей.

Important

Для обеспечения корректной отправки http-запросов произведите настройки аутентификации в соответствии со :ref:`статьей <keycloak_postman>`

URL
{{host}}/gateway/api/records/query
Type POST
Запрос
{"query":{
    "sourceId":"alfresco/",
    "query":{
        "att":"_type",
        "val":"emodel/type@sampleedidl-routeTemplateItem",
        "t":"eq"
        },
        "language":"predicate",
        "page":{"skipCount":0,"maxItems":10,"page":1},
        "consistency":"EVENTUAL",
        "sortBy":[{"attribute":"cm:created","ascending":false}]},
        "attributes":["sampleedidl:rtCode?disp"]
}
Ответ
{
    "records": [
        {
            "id": "alfresco/@workspace://SpacesStore/820f88b5-e722-4bc0-933f-926d57e728aa",
            "attributes": {
                "sampleedidl:rtCode?disp": "1"
            }
        }
    ],
    "errors": [],
    "hasMore": false,
    "totalCount": 1
}
URL
{{host}}/gateway/alfresco/alfresco/s/api/orgstruct/v2/group/_orgstruct_home_/children?addAdminGroup=true&branch=true&excludeAuthorities=&group=true&role=true&user=true
Type GET
Ответ
[
    {
        "nodeRef": "workspace://SpacesStore/03094bf2-1395-4ded-98ff-3aba20698260",
        "fullName": "GROUP_all",
        "shortName": "all",
        "displayName": "Все пользователи",
        "authorityType": "GROUP",
        "groupType": "branch",
        "groupSubType": "company"
    },
    {
        "nodeRef": "workspace://SpacesStore/6ac1289b-45c6-43b5-ad95-fdbbe1302d69",
        "fullName": "GROUP_company",
        "shortName": "company",
        "displayName": "Организация",
        "authorityType": "GROUP",
        "groupType": "branch",
        "groupSubType": "company"
    }
]
URL
{{host}}/gateway/api/records/mutate
Type POST
Запрос
{
    "records": [
        {
            "id":"alfresco/@workspace://SpacesStore/820f88b5-e722-4bc0-933f-926d57e728aa", -- ID маршрута
            "attributes":{
                "sampleedidl:templateRouteSignerAssoc?str":"workspace://SpacesStore/15d05def-45fd-41cf-bf8d-96ecd422edea", - этап, на который необходимо добавить пользователя/группу (указать ID пользователя/группы), если необходимо удалить с этапа, то указать “”
                "_state?str":"submitted"
                         }
        }
               ]
}
Ответ
{
    "records": [
        {
            "id": "alfresco/@workspace://SpacesStore/820f88b5-e722-4bc0-933f-926d57e728aa",
            "attributes": {}
        }
    ],
    "errors": []
}
URL
{{host}}/gateway/api/records/query
Type POST
Запрос
{
    "query":{
        "query":{
        "t":"and",
        "val":[{"t":"eq","att":"TYPE","val":"cm:person"}]},
        "language":"predicate",
        "consistency":"EVENTUAL",
        "page":{"maxItems":10,"skipCount":0}},
        "attributes":{"fullName":".disp","userName":"userName"}
    }
Ответ
{
"records": [
    {
        "id": "alfresco/@workspace://SpacesStore/e0d4333e-97e1-4d42-a4d0-83e4259ed936",
        "attributes": {
            "fullName": "Guest",
            "userName": "guest"
        }
    },
    {
        "id": "alfresco/@workspace://SpacesStore/6985ba61-155a-4ae8-aeb3-28acbc59f5f4",
        "attributes": {
            "fullName": "system",
            "userName": "system"
        }
    },
    {
        "id": "alfresco/@workspace://SpacesStore/15d05def-45fd-41cf-bf8d-96ecd422edea",
        "attributes": {
            "fullName": "Administrator",
            "userName": "admin"
        }
    }
],
"errors": [],
"hasMore": false,
"totalCount": 3
    }
URL
{{host}}/gateway/api/records/query
Type POST
Запрос
{"records":
    ["people@admin"],
    "attributes":
        ["groups[]"]
}
Ответ
{
"records": [
    {
        "id": "people@admin",
        "attributes": {
            "groups[]": [
                "ALFRESCO_ADMINISTRATORS",
                "ALFRESCO_MODEL_ADMINISTRATORS"
            ]
        }
    }
],
"errors": []
}
URL
{{host}}/gateway/api/records/mutate
Type POST
Запрос
{"records":[
    {
    "id":"emodel/person@admin",
    "attributes":{
        "att_add_authorityGroups":"emodel/authority-group@GROUP_company_accountancy"
}}]}

att_add_authorityGroups – добавление в группу

att_rem_authorityGroups – удаление из группы

URL
{{host}}/gateway/api/records/query
Type POST
Запрос
{"query":{
    "sourceId": "emodel/person",
        "query": {"t": "contains", "a": "authorityGroups", "v": "emodel/authority-group@orders-technologist"},
    "language": "predicate"
}}
Ответ
{
    "records": [
        "emodel/person@admin"
    ],
    "errors": [],
    "hasMore": false,
    "totalCount": 1
}

Просмотр групп в группе аналогичен просмотру пользователей в группе, но sourceId равен “emodel/authority-group“.

Просмотр пользователей или групп с учетом иерархии вниз (т.е. указать корень оргструктуры или любую другую группу, но так же ищется и во всех подгруппах) - то же что и просмотр пользователей в группе, но вместо “authorityGroups” использовать “authorityGroupsFull“

Таблица 1 Описание полей
Поле Наименование
fullName Полное наименование
shortName Сокращенное наименование
id ID записи
nodeRef Ссылка на запись в системе Citeck
displayName Отображаемое наименование
authorityType Тип полномочий User/Group
groupType Тип группы
groupSubType Тип подгруппы
userName Логин
templateRouteSignerAssoc Этап, на который необходимо добавить пользователя/группу (указать ID пользователя/группы), если необходимо удалить с этапа указать “”
att_add_authorityGroups
att_add_authorityGroups – добавление в группу
att_rem_authorityGroups – удаление из группы
rtCode Код шаблона
_state Тип состояния
errors Значение ошибки, если при запросе она произошла
hasMore Есть ли дальше рекорды (записи)
totalCount Общее количество найденных записей
disp Значение для вывода
value Значение
Таблица 2 Описание параметров
Параметр Значение
Блок “page”
Параметр для настройки пагинации.
Необязательный параметр.
Блок “sortBy”
Параметр для сортировки.
Необязательный параметр.
Блок “attributes“
Параметры (см. Таблица 1), которые необходимо получить на выходе.
Необязательный параметр.
Можно не указывать параметры в “attributes“ или убрать данный блок и на выходе получить список Id записей.
sourceId
Источник данных для поиска. В данном случае alfresco.
Возможные варианты:
• reports-data
• alfresco
query Необходимый predicate query для поиска записей
att Название аттрибута
val Значение
t
Типы предикатов.
Возможные варианты:
• starts
• ends
• or
• and
• empty
• not
• eq
• gt
• ge
• lt
• le
• like
• in
• contains
language Язык запроса. На текущий момент поддерживается только predicate
consistency
Консистенция (Согласованность)
Возможные варианты:
• EVENTUAL
• TRANSACTIONAL
• DEFAULT
• TRANSACTIONAL_IF_POSSIBLE